//
// Variables
// --------------------------------------------------

// Global values
// --------------------------------------------------

// Grays
// -------------------------
@black: #000;
@grayDarker: #222;
@grayDark: #333;
@gray: #555;
@grayLight: #999;
@grayLighter: #EEE;
@white: #FFF;

// Accent colors
// -------------------------
@blue: #049CDB;
@blueDark: #0064CD;
@green: #46A546;
@red: #9D261D;
@yellow: #FFC40D;
@orange: #F89406;
@pink: #C3325F;
@purple: #7A43B6;

// Scaffolding
// -------------------------
@bodyBackground: @white;
@textColor: @grayDark;

// Links
// -------------------------
@linkColor: #08C;
@linkColorHover: darken(@linkColor, 15%);

// Typography
// -------------------------
@sansFontFamily: "Helvetica Neue", Helvetica, Arial, sans-serif;
@serifFontFamily: Georgia, "Times New Roman", Times, serif;
@monoFontFamily: Monaco, Menlo, Consolas, "Courier New", monospace;

@baseFontSize: 14px;
@baseFontFamily: @sansFontFamily;
@baseLineHeight: 20px;
@altFontFamily: @serifFontFamily;

@headingsFontFamily: inherit; // empty to use BS default, @baseFontFamily
@headingsFontWeight: bold; // instead of browser default, bold
@headingsColor: inherit; // empty to use BS default, @textColor

// Component sizing
// -------------------------
// Based on 14px font-size and 20px line-height

@fontSizeLarge: @baseFontSize * 1.25; // ~18px
@fontSizeSmall: @baseFontSize * 0.85; // ~12px
@fontSizeMini: @baseFontSize * 0.75; // ~11px

@paddingLarge: 11px 19px; // 44px
@paddingSmall: 2px 10px; // 26px
@paddingMini: 0 6px; // 22px

@baseBorderRadius: 4px;
@borderRadiusLarge: 6px;
@borderRadiusSmall: 3px;

// Tables
// -------------------------
@tableBackground: transparent; // overall background-color
@tableBackgroundAccent: #F9F9F9; // for striping
@tableBackgroundHover: #F5F5F5; // for hover
@tableBorder: #DDD; // table and cell border

// Buttons
// -------------------------
@btnBackground: @white;
@btnBackgroundHighlight: darken(@white, 10%);
@btnBorder: #BBB;

@btnPrimaryBackground: @linkColor;
@btnPrimaryBackgroundHighlight: spin(@btnPrimaryBackground, 20%);

@btnInfoBackground: #5BC0DE;
@btnInfoBackgroundHighlight: #2F96B4;

@btnSuccessBackground: #62C462;
@btnSuccessBackgroundHighlight: #51A351;

@btnWarningBackground: lighten(@orange, 15%);
@btnWarningBackgroundHighlight: @orange;

@btnDangerBackground: #EE5F5B;
@btnDangerBackgroundHighlight: #BD362F;

@btnInverseBackground: #444;
@btnInverseBackgroundHighlight: @grayDarker;

// Forms
// -------------------------
@inputBackground: @white;
@inputBorder: #CCC;
@inputBorderRadius: @baseBorderRadius;
@inputDisabledBackground: @grayLighter;
@formActionsBackground: #F5F5F5;
@inputHeight: @baseLineHeight + 10px; // base line-height + 8px vertical padding + 2px top/bottom border

// Dropdowns
// -------------------------
@dropdownBackground: @white;
@dropdownBorder: rgba(0, 0, 0, .2);
@dropdownDividerTop: #E5E5E5;
@dropdownDividerBottom: @white;

@dropdownLinkColor: @grayDark;
@dropdownLinkColorHover: @white;
@dropdownLinkColorActive: @white;

@dropdownLinkBackgroundActive: @linkColor;
@dropdownLinkBackgroundHover: @dropdownLinkBackgroundActive;

// COMPONENT VARIABLES
// --------------------------------------------------

// Z-index master list
// -------------------------
// Used for a bird's eye view of components dependent on the z-axis
// Try to avoid customizing these :)
@zindexDropdown: 1000;
@zindexPopover: 1010;
@zindexTooltip: 1030;
@zindexFixedNavbar: 1030;
@zindexModalBackdrop: 1040;
@zindexModal: 1050;

// Sprite icons path
// -------------------------
@iconSpritePath: "../img/glyphicons-halflings.png";
@iconWhiteSpritePath: "../img/glyphicons-halflings-white.png";

// Input placeholder text color
// -------------------------
@placeholderText: @grayLight;

// Hr border color
// -------------------------
@hrBorder: @grayLighter;

// Horizontal forms & lists
// -------------------------
@horizontalComponentOffset: 180px;

// Wells
// -------------------------
@wellBackground: #F5F5F5;

// Navbar
// -------------------------
@navbarCollapseWidth: 979px;
@navbarCollapseDesktopWidth: @navbarCollapseWidth + 1;

@navbarHeight: 40px;
@navbarBackgroundHighlight: #FFF;
@navbarBackground: darken(@navbarBackgroundHighlight, 5%);
@navbarBorder: darken(@navbarBackground, 12%);

@navbarText: #777;
@navbarLinkColor: #777;
@navbarLinkColorHover: @grayDark;
@navbarLinkColorActive: @gray;
@navbarLinkBackgroundHover: transparent;
@navbarLinkBackgroundActive: darken(@navbarBackground, 5%);

@navbarBrandColor: @navbarLinkColor;

// Inverted navbar
@navbarInverseBackground: #111;
@navbarInverseBackgroundHighlight: #222;
@navbarInverseBorder: #252525;

@navbarInverseText: @grayLight;
@navbarInverseLinkColor: @grayLight;
@navbarInverseLinkColorHover: @white;
@navbarInverseLinkColorActive: @navbarInverseLinkColorHover;
@navbarInverseLinkBackgroundHover: transparent;
@navbarInverseLinkBackgroundActive: @navbarInverseBackground;

@navbarInverseSearchBackground: lighten(@navbarInverseBackground, 25%);
@navbarInverseSearchBackgroundFocus: @white;
@navbarInverseSearchBorder: @navbarInverseBackground;
@navbarInverseSearchPlaceholderColor: #CCC;

@navbarInverseBrandColor: @navbarInverseLinkColor;

// Pagination
// -------------------------
@paginationBackground: #FFF;
@paginationBorder: #DDD;
@paginationActiveBackground: #F5F5F5;

// Hero unit
// -------------------------
@heroUnitBackground: @grayLighter;
@heroUnitHeadingColor: inherit;
@heroUnitLeadColor: inherit;

// Form states and alerts
// -------------------------
@warningText: #C09853;
@warningBackground: #FCF8E3;
@warningBorder: darken(spin(@warningBackground, -10), 3%);

@errorText: #B94A48;
@errorBackground: #F2DEDE;
@errorBorder: darken(spin(@errorBackground, -10), 3%);

@successText: #468847;
@successBackground: #DFF0D8;
@successBorder: darken(spin(@successBackground, -10), 5%);

@infoText: #3A87AD;
@infoBackground: #D9EDF7;
@infoBorder: darken(spin(@infoBackground, -10), 7%);

// Tooltips and popovers
// -------------------------
@tooltipColor: #FFF;
@tooltipBackground: #000;
@tooltipArrowWidth: 5px;
@tooltipArrowColor: @tooltipBackground;

@popoverBackground: #FFF;
@popoverArrowWidth: 10px;
@popoverArrowColor: #FFF;
@popoverTitleBackground: darken(@popoverBackground, 3%);

// Special enhancement for popovers
@popoverArrowOuterWidth: @popoverArrowWidth + 1;
@popoverArrowOuterColor: rgba(0, 0, 0, .25);

// GRID
// --------------------------------------------------

// Default 940px grid
// -------------------------
@gridColumns: 12;
@gridColumnWidth: 60px;
@gridGutterWidth: 20px;
@gridRowWidth: (@gridColumns * @gridColumnWidth) + (@gridGutterWidth * (@gridColumns - 1));

// 1200px min
@gridColumnWidth1200: 70px;
@gridGutterWidth1200: 30px;
@gridRowWidth1200: (@gridColumns * @gridColumnWidth1200) + (@gridGutterWidth1200 * (@gridColumns - 1));

// 768px-979px
@gridColumnWidth768: 42px;
@gridGutterWidth768: 20px;
@gridRowWidth768: (@gridColumns * @gridColumnWidth768) + (@gridGutterWidth768 * (@gridColumns - 1));

// Fluid grid
// -------------------------
@fluidGridColumnWidth: percentage(@gridColumnWidth/@gridRowWidth);
@fluidGridGutterWidth: percentage(@gridGutterWidth/@gridRowWidth);

// 1200px min
@fluidGridColumnWidth1200: percentage(@gridColumnWidth1200/@gridRowWidth1200);
@fluidGridGutterWidth1200: percentage(@gridGutterWidth1200/@gridRowWidth1200);

// 768px-979px
@fluidGridColumnWidth768: percentage(@gridColumnWidth768/@gridRowWidth768);
@fluidGridGutterWidth768: percentage(@gridGutterWidth768/@gridRowWidth768);

//
// Mixins
// --------------------------------------------------

// UTILITY MIXINS
// --------------------------------------------------

// Webkit-style focus
// ------------------
.tab-focus() {
	// Default
	outline: thin dotted #333;
	// Webkit
	outline: 5px auto -webkit-focus-ring-color;
	outline-offset: -2px;
}
// Center-align a block level element
// ----------------------------------
.center-block() {
	display: block;
	margin-left: auto;
	margin-right: auto;
}
// IE7 inline-block
// ----------------
.ie7-inline-block() {
	*display: inline; /* IE7 inline-block hack */
	*zoom: 1;
}
// IE7 likes to collapse whitespace on either side of the inline-block elements.
// Ems because we're attempting to match the width of a space character. Left
// version is for form buttons, which typically come after other elements, and
// right version is for icons, which come before. Applying both is ok, but it will
// mean that space between those elements will be .6em (~2 space characters) in IE7,
// instead of the 1 space in other browsers.
.ie7-restore-left-whitespace() {
	*margin-left: .3em;

	&:first-child {
		*margin-left: 0;
	}
}
.ie7-restore-right-whitespace() {
	*margin-right: .3em;
}
// Sizing shortcuts
// -------------------------
.size(@height, @width) {
	width: @width;
	height: @height;
}
.square(@size) {
	.size(@size, @size);
}
// Placeholder text
// -------------------------
.placeholder(@color: @placeholderText) {
	&:-moz-placeholder {
		color: @color;
	}
	&:-ms-input-placeholder {
		color: @color;
	}
	&::-webkit-input-placeholder {
		color: @color;
	}
}
// Text overflow
// -------------------------
// Requires inline-block or block for proper styling
.text-overflow() {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
// CSS image replacement
// -------------------------
// Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757
.hide-text {
	font: 0/0 a;
	color: transparent;
	text-shadow: none;
	background-color: transparent;
	border: 0;
}
// FONTS
// --------------------------------------------------

#font {
	#family {
		.serif() {
			font-family: @serifFontFamily;
		}
		.sans-serif() {
			font-family: @sansFontFamily;
		}
		.monospace() {
			font-family: @monoFontFamily;
		}
	}
	.shorthand(@size: @baseFontSize, @weight: normal, @lineHeight: @baseLineHeight) {
		font-size: @size;
		font-weight: @weight;
		line-height: @lineHeight;
	}
	.serif(@size: @baseFontSize, @weight: normal, @lineHeight: @baseLineHeight) {
		#font > #family > .serif;
		#font > .shorthand(@size, @weight, @lineHeight);
	}
	.sans-serif(@size: @baseFontSize, @weight: normal, @lineHeight: @baseLineHeight) {
		#font > #family > .sans-serif;
		#font > .shorthand(@size, @weight, @lineHeight);
	}
	.monospace(@size: @baseFontSize, @weight: normal, @lineHeight: @baseLineHeight) {
		#font > #family > .monospace;
		#font > .shorthand(@size, @weight, @lineHeight);
	}
}
// FORMS
// --------------------------------------------------

// Block level inputs
.input-block-level {
	display: block;
	width: 100%;
	min-height: @inputHeight; // Make inputs at least the height of their button counterpart (base line-height + padding + border)
	.box-sizing(border-box); // Makes inputs behave like true block-level elements
}
// Mixin for form field states
.formFieldState(@textColor: #555, @borderColor: #CCC, @backgroundColor: #F5F5F5) {
	// Set the text color
	.control-label,
	.help-block,
	.help-inline {
		color: @textColor;
	}
	// Style inputs accordingly
	.checkbox,
	.radio,
	input,
	select,
	textarea {
		color: @textColor;
	}
	input,
	select,
	textarea {
		border-color: @borderColor;
		.box-shadow(inset 0 1px 1px rgba(0, 0, 0, .075)); // Redeclare so transitions work
		&:focus {
			border-color: darken(@borderColor, 10%);
			@shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px lighten(@borderColor, 20%);
			.box-shadow(@shadow);
		}
	}
	// Give a small background color for input-prepend/-append
	.input-prepend .add-on,
	.input-append .add-on {
		color: @textColor;
		background-color: @backgroundColor;
		border-color: @textColor;
	}
}
// CSS3 PROPERTIES
// --------------------------------------------------

// Border Radius
.border-radius(@radius) {
	-webkit-border-radius: @radius;
	-moz-border-radius: @radius;
	border-radius: @radius;
}
// Single Corner Border Radius
.border-top-left-radius(@radius) {
	-webkit-border-top-left-radius: @radius;
	-moz-border-radius-topleft: @radius;
	border-top-left-radius: @radius;
}
.border-top-right-radius(@radius) {
	-webkit-border-top-right-radius: @radius;
	-moz-border-radius-topright: @radius;
	border-top-right-radius: @radius;
}
.border-bottom-right-radius(@radius) {
	-webkit-border-bottom-right-radius: @radius;
	-moz-border-radius-bottomright: @radius;
	border-bottom-right-radius: @radius;
}
.border-bottom-left-radius(@radius) {
	-webkit-border-bottom-left-radius: @radius;
	-moz-border-radius-bottomleft: @radius;
	border-bottom-left-radius: @radius;
}
// Single Side Border Radius
.border-top-radius(@radius) {
	.border-top-right-radius(@radius);
	.border-top-left-radius(@radius);
}
.border-right-radius(@radius) {
	.border-top-right-radius(@radius);
	.border-bottom-right-radius(@radius);
}
.border-bottom-radius(@radius) {
	.border-bottom-right-radius(@radius);
	.border-bottom-left-radius(@radius);
}
.border-left-radius(@radius) {
	.border-top-left-radius(@radius);
	.border-bottom-left-radius(@radius);
}
// Drop shadows
.box-shadow(@shadow) {
	-webkit-box-shadow: @shadow;
	-moz-box-shadow: @shadow;
	box-shadow: @shadow;
}
// Transitions
.transition(@transition) {
	-webkit-transition: @transition;
	-moz-transition: @transition;
	-o-transition: @transition;
	transition: @transition;
}
.transition-delay(@transition-delay) {
	-webkit-transition-delay: @transition-delay;
	-moz-transition-delay: @transition-delay;
	-o-transition-delay: @transition-delay;
	transition-delay: @transition-delay;
}
// Transformations
.rotate(@degrees) {
	-webkit-transform: rotate(@degrees);
	-moz-transform: rotate(@degrees);
	-ms-transform: rotate(@degrees);
	-o-transform: rotate(@degrees);
	transform: rotate(@degrees);
}
.scale(@ratio) {
	-webkit-transform: scale(@ratio);
	-moz-transform: scale(@ratio);
	-ms-transform: scale(@ratio);
	-o-transform: scale(@ratio);
	transform: scale(@ratio);
}
.translate(@x, @y) {
	-webkit-transform: translate(@x, @y);
	-moz-transform: translate(@x, @y);
	-ms-transform: translate(@x, @y);
	-o-transform: translate(@x, @y);
	transform: translate(@x, @y);
}
.skew(@x, @y) {
	-webkit-transform: skew(@x, @y);
	-moz-transform: skew(@x, @y);
	-ms-transform: skewX(@x) skewY(@y); // See https://github.com/twitter/bootstrap/issues/4885
	-o-transform: skew(@x, @y);
	transform: skew(@x, @y);
	-webkit-backface-visibility: hidden; // See https://github.com/twitter/bootstrap/issues/5319
}
.translate3d(@x, @y, @z) {
	-webkit-transform: translate3d(@x, @y, @z);
	-moz-transform: translate3d(@x, @y, @z);
	-o-transform: translate3d(@x, @y, @z);
	transform: translate3d(@x, @y, @z);
}
// Backface visibility
// Prevent browsers from flickering when using CSS 3D transforms.
// Default value is `visible`, but can be changed to `hidden
// See git pull https://github.com/dannykeane/bootstrap.git backface-visibility for examples
.backface-visibility(@visibility) {
	-webkit-backface-visibility: @visibility;
	-moz-backface-visibility: @visibility;
	backface-visibility: @visibility;
}
// Background clipping
// Heads up: FF 3.6 and under need "padding" instead of "padding-box"
.background-clip(@clip) {
	-webkit-background-clip: @clip;
	-moz-background-clip: @clip;
	background-clip: @clip;
}
// Background sizing
.background-size(@size) {
	-webkit-background-size: @size;
	-moz-background-size: @size;
	-o-background-size: @size;
	background-size: @size;
}
// Box sizing
.box-sizing(@boxmodel) {
	-webkit-box-sizing: @boxmodel;
	-moz-box-sizing: @boxmodel;
	box-sizing: @boxmodel;
}
// User select
// For selecting text on the page
.user-select(@select) {
	-webkit-user-select: @select;
	-moz-user-select: @select;
	-ms-user-select: @select;
	-o-user-select: @select;
	user-select: @select;
}
// Resize anything
.resizable(@direction) {
	resize: @direction; // Options: horizontal, vertical, both
	overflow: auto; // Safari fix
}
// CSS3 Content Columns
.content-columns(@columnCount, @columnGap: @gridGutterWidth) {
	-webkit-column-count: @columnCount;
	-moz-column-count: @columnCount;
	column-count: @columnCount;
	-webkit-column-gap: @columnGap;
	-moz-column-gap: @columnGap;
	column-gap: @columnGap;
}
// Optional hyphenation
.hyphens(@mode: auto) {
	word-wrap: break-word;
	-webkit-hyphens: @mode;
	-moz-hyphens: @mode;
	-ms-hyphens: @mode;
	-o-hyphens: @mode;
	hyphens: @mode;
}
// Opacity
.opacity(@opacity) {
	opacity: @opacity / 100;
	filter: ~"alpha(opacity=@{opacity})";
}
// BACKGROUNDS
// --------------------------------------------------

// Add an alphatransparency value to any background or border color (via Elyse Holladay)
#translucent {
	.background(@color: @white, @alpha: 1) {
		background-color: hsla(hue(@color), saturation(@color), lightness(@color), @alpha);
	}
	.border(@color: @white, @alpha: 1) {
		border-color: hsla(hue(@color), saturation(@color), lightness(@color), @alpha);
		.background-clip(padding-box);
	}
}
// Gradient Bar Colors for buttons and alerts
.gradientBar(@primaryColor, @secondaryColor, @textColor: #FFF, @textShadow: 0 -1px 0 rgba(0,0,0,.25)) {
	color: @textColor;
	text-shadow: @textShadow;
	#gradient > .vertical(@primaryColor, @secondaryColor);
	border-color: @secondaryColor @secondaryColor darken(@secondaryColor, 15%);
	border-color: rgba(0, 0, 0, .1) rgba(0, 0, 0, .1) fadein(rgba(0, 0, 0, .1), 15%);
}
// Gradients
#gradient {
	.horizontal(@startColor: #555, @endColor: #333) {
		background-color: @endColor;
		background-image: -moz-linear-gradient(left, @startColor, @endColor); // FF 3.6+
		background-image: -webkit-gradient(linear, 0 0, 100% 0, from(@startColor), to(@endColor)); // Safari 4+, Chrome 2+
		background-image: -webkit-linear-gradient(left, @startColor, @endColor); // Safari 5.1+, Chrome 10+
		background-image: -o-linear-gradient(left, @startColor, @endColor); // Opera 11.10
		background-image: linear-gradient(to right, @startColor, @endColor); // Standard, IE10
		background-repeat: repeat-x;
		filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)", argb(@startColor), argb(@endColor))); // IE9 and down
	}
	.vertical(@startColor: #555, @endColor: #333) {
		background-color: mix(@startColor, @endColor, 60%);
		background-image: -moz-linear-gradient(top, @startColor, @endColor); // FF 3.6+
		background-image: -webkit-gradient(linear, 0 0, 0 100%, from(@startColor), to(@endColor)); // Safari 4+, Chrome 2+
		background-image: -webkit-linear-gradient(top, @startColor, @endColor); // Safari 5.1+, Chrome 10+
		background-image: -o-linear-gradient(top, @startColor, @endColor); // Opera 11.10
		background-image: linear-gradient(to bottom, @startColor, @endColor); // Standard, IE10
		background-repeat: repeat-x;
		filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)", argb(@startColor), argb(@endColor))); // IE9 and down
	}
	.directional(@startColor: #555, @endColor: #333, @deg: 45deg) {
		background-color: @endColor;
		background-repeat: repeat-x;
		background-image: -moz-linear-gradient(@deg, @startColor, @endColor); // FF 3.6+
		background-image: -webkit-linear-gradient(@deg, @startColor, @endColor); // Safari 5.1+, Chrome 10+
		background-image: -o-linear-gradient(@deg, @startColor, @endColor); // Opera 11.10
		background-image: linear-gradient(@deg, @startColor, @endColor); // Standard, IE10
	}
	.vertical-three-colors(@startColor: #00B3EE, @midColor: #7A43B6, @colorStop: 50%, @endColor: #C3325F) {
		background-color: mix(@midColor, @endColor, 80%);
		background-image: -webkit-gradient(linear, 0 0, 0 100%, from(@startColor), color-stop(@colorStop, @midColor), to(@endColor));
		background-image: -webkit-linear-gradient(@startColor, @midColor @colorStop, @endColor);
		background-image: -moz-linear-gradient(top, @startColor, @midColor @colorStop, @endColor);
		background-image: -o-linear-gradient(@startColor, @midColor @colorStop, @endColor);
		background-image: linear-gradient(@startColor, @midColor @colorStop, @endColor);
		background-repeat: no-repeat;
		filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)", argb(@startColor), argb(@endColor))); // IE9 and down, gets no color-stop at all for proper fallback
	}
	.radial(@innerColor: #555, @outerColor: #333) {
		background-color: @outerColor;
		background-image: -webkit-gradient(radial, center center, 0, center center, 460, from(@innerColor), to(@outerColor));
		background-image: -webkit-radial-gradient(circle, @innerColor, @outerColor);
		background-image: -moz-radial-gradient(circle, @innerColor, @outerColor);
		background-image: -o-radial-gradient(circle, @innerColor, @outerColor);
		background-repeat: no-repeat;
	}
	.striped(@color: #555, @angle: 45deg) {
		background-color: @color;
		background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(.25, rgba(255, 255, 255, .15)), color-stop(.25, transparent), color-stop(.5, transparent), color-stop(.5, rgba(255, 255, 255, .15)), color-stop(.75, rgba(255, 255, 255, .15)), color-stop(.75, transparent), to(transparent));
		background-image: -webkit-linear-gradient(@angle, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
		background-image: -moz-linear-gradient(@angle, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
		background-image: -o-linear-gradient(@angle, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
		background-image: linear-gradient(@angle, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
	}
}
// Reset filters for IE
.reset-filter() {
	filter: e(%("progid:DXImageTransform.Microsoft.gradient(enabled = false)"));
}
// COMPONENT MIXINS
// --------------------------------------------------

// Horizontal dividers
// -------------------------
// Dividers (basically an hr) within dropdowns and nav lists
.nav-divider(@top: #E5E5E5, @bottom: @white) {
	// IE7 needs a set width since we gave a height. Restricting just
	// to IE7 to keep the 1px left/right space in other browsers.
	// It is unclear where IE is getting the extra space that we need
	// to negative-margin away, but so it goes.
	*width: 100%;
	height: 1px;
	margin: ((@baseLineHeight / 2) - 1) 1px; // 8px 1px
	*margin: -5px 0 5px;
	overflow: hidden;
	background-color: @top;
	border-bottom: 1px solid @bottom;
}
// Button backgrounds
// ------------------
.buttonBackground(@startColor, @endColor, @textColor: #FFF, @textShadow: 0 -1px 0 rgba(0,0,0,.25)) {
	// gradientBar will set the background to a pleasing blend of these, to support IE<=9
	.gradientBar(@startColor, @endColor, @textColor, @textShadow);
	*background-color: @endColor; /* Darken IE7 buttons by default so they stand out more given they won't have borders */
	.reset-filter();

	// in these cases the gradient won't cover the background, so we override
	&:hover, &:active, &.active, &.disabled, &[disabled] {
		color: @textColor;
		background-color: @endColor;
		*background-color: darken(@endColor, 5%);
	}

	// IE 7 + 8 can't handle box-shadow to show active, so we darken a bit ourselves
	&:active,
	&.active {
		background-color: darken(@endColor, 10%) e("\9");
	}
}
// Navbar vertical align
// -------------------------
// Vertically center elements in the navbar.
// Example: an element has a height of 30px, so write out `.navbarVerticalAlign(30px);` to calculate the appropriate top margin.
.navbarVerticalAlign(@elementHeight) {
	margin-top: (@navbarHeight - @elementHeight) / 2;
}
// Grid System
// -----------

// Centered container element
.container-fixed() {
	margin-right: auto;
	margin-left: auto;
	.clearfix();
}
// Table columns
.tableColumns(@columnSpan: 1) {
	float: none; // undo default grid column styles
	width: ((@gridColumnWidth) * @columnSpan) + (@gridGutterWidth * (@columnSpan - 1)) - 16; // 16 is total padding on left and right of table cells
	margin-left: 0; // undo default grid column styles
}
// Make a Grid
// Use .makeRow and .makeColumn to assign semantic layouts grid system behavior
.makeRow() {
	margin-left: @gridGutterWidth * -1;
	.clearfix();
}
.makeColumn(@columns: 1, @offset: 0) {
	float: left;
	margin-left: (@gridColumnWidth * @offset) + (@gridGutterWidth * (@offset - 1)) + (@gridGutterWidth * 2);
	width: (@gridColumnWidth * @columns) + (@gridGutterWidth * (@columns - 1));
}
// The Grid

.date-picker-date-time {
	position: absolute;
}
.date-range .date-picker-date-time {
	position: inherit;
}
[date-picker-wrapper] {
	position: absolute;
	min-width: 220px;
	z-index: 10;
	display: block;
	font-size: 14px;
	[date-picker] {
		box-shadow: 0 0 5px rgba(0, 0, 0, 0.5);
	}
}
[date-time-append] [date-picker-wrapper] [date-picker] {
	margin-top: -30px;
}
[date-time-append] [date-picker] {
	position: relative;
	margin-right: -1000px;
	margin-bottom: -1000px;
}
[date-range] [date-picker] {
	.after.before {
		.buttonBackground(@btnInfoBackground, spin(@btnInfoBackgroundHighlight, 20));
	}
}
[date-picker].hidden { display: none; }
[date-picker] {
	.user-select(none);
	.border-radius(4px);
	background-color: #FFF;
	min-width: 300px;
	/* GENERAL */
	padding: 4px;

	table {
		margin: 0;
		width: 100%;
	}

	td, th {
		background: #FFF;
		padding: 4px 5px;
		text-align: center;
		width: 20px;
		height: 20px;
		.border-radius(4px);
		border: none;
	}

	.switch {
		width: 145px;
	}

	span {
		display: block;
		width: 23%;
		height: 26px;
		line-height: 25px;
		float: left;
		margin: 1%;
		cursor: pointer;
		&:hover {
			background: @grayLighter;
		}
		&.disabled, &.disabled:hover {
			background: none;
			//color: @grayLight;
			cursor: default;
		}

	}

	.active {
		.buttonBackground(@btnPrimaryBackground, spin(@btnPrimaryBackground, 20));
		color: #FFF;
		text-shadow: 0 -1px 0 rgba(0, 0, 0, .25);
	}

	.now {
		//.buttonBackground(@btnDangerBackground, spin(@btnDangerBackground, 20));
		background: transparent;
		color: @btnDangerBackground !important;
	}

	.disabled {
		background: none;
		color: #CCC;
		cursor: default;
	}

	/* SPECIFIC */

	[ng-switch-when="year"], [ng-switch-when="month"], [ng-switch-when="minutes"] {
		span {
			height: 54px;
			line-height: 54px;
		}
	}
	[ng-switch-when="date"] {
		td {
			padding: 0;
		}
		span {
			width: 100%;
			height: 26px;
			line-height: 26px;
		}
	}

	th:hover, span:hover {
		background: @grayLighter;
		cursor: pointer;
	}
}
.date-picker-block {
	th, td {
		border: 1px solid #CCC;
	}
	td {
		height: 50px;
	}
	[ng-switch-when="date"] span {
		height: 50px;
		line-height: 50px;
		border-radius: 0;
		margin: 0;
		position: relative;
		&.active {
			background: transparent;
			color: inherit;
		}
		&.expire {
			background: #F00;
			color: #FFF;
		}
		&.remind {
			background: green;
			color: #FFF;
		}
	}
}
